数学模型

Wang Haihua

🍈 🍉🍊 🍋 🍌


案例(客流量预测)

公路运量主要包括客运量和货运量两个方面。据研究, 某地 区的公路运量主要与该地区的人数、机动车数量和公路面积有关,表 $17.4$ 给出了该地区 1990 年至 2009 年 20 年间公路运量的相关数据。根据有关 部门数据, 该地区 2010 年和 2011 年的人数分别为 $73.39$ 万人、 $75.55$ 万 人, 机动车数量分别为 $3.9635$ 万辆 $4.0975$ 万辆, 公路面积将分别为 $0.9880$ 万平方米、1.0268 万平方米。请利用 BP 神经网络预测该地区 2010 年和 2011 年的公路客运量和货运量。

利用BP网络求得2010年和2011年的公路客运量的预测值分别为62782.0336万人和65849.9027万人;货运量分别为31439.9231万吨和32917.5961万吨。

from sklearn.neural_network import MLPRegressor
from numpy import array, loadtxt
from pylab import subplot, plot, show, xticks,rc,legend,figure
from model_insight.load_datasets import load_passagers_flow
rc('font',size=15); rc('font',family='SimHei')

a=load_passagers_flow(); 
x0=a.iloc[:,:3]; y1=a.iloc[:,3]; y2=a.iloc[:,4];
md1=MLPRegressor(solver='lbfgs', alpha=1e-5, hidden_layer_sizes=10)

md1.fit(x0, y1); x=array([[73.39,3.9635,0.988],[75.55,4.0975,1.0268]])
pred1=md1.predict(x); print(md1.score(x0,y1)); 
print("客运量的预测值为:",pred1,'\n----------------'); 
md2=MLPRegressor(solver='lbfgs', alpha=1e-5, hidden_layer_sizes=10)
md2.fit(x0, y2); pred2=md2.predict(x); print(md2.score(x0,y2)); 
print("货运量的预测值为:",pred2); yr=range(1990,2010)

figure(figsize=(20,10))
subplot(121); plot(yr,y1,'o'); plot(yr,md1.predict(x0),'-*')
xticks(yr,rotation=55); legend(("原始数据","网络输出客运量"))
subplot(122); plot(yr,y2,'o'); plot(yr,md2.predict(x0),'-*')
xticks(yr,rotation=55)
legend(("原始数据","网络输出货运量"),loc='upper left'); show()

参考文献